package com.atwisdom.star.core.bsl.das;

import com.alibaba.fastjson.JSONObject;
import com.atwisdom.star.common.vo.ResultInfo;

public interface RealTimeInfoBslService {
    /**
     * 设备采集踪合统计：计算生产节拍、计算日报警数、计算月报警数、处理设备状态
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
     ResultInfo<?> getStatInfo(JSONObject param);

    /**
     * 按分钟统计设备计数
     *
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getMinuteEquipCount(JSONObject param);

    /**
     * 按分钟统计设备列表计数
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> queryMinuteEquipCount(JSONObject param);

    /**
     * 按小时统计设备计数
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getHourEquipCount(JSONObject param);

    /**
     * 按小时统计设备列表计数
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> queryHourEquipCount(JSONObject param);

    /**
     * 按小时统计设备品番计数
     * @param param 参数 equipCode 设备编码,pCode 品番编码，startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getHourEquipPfCount(JSONObject param);

    /**
     * 设备有效工作时长
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getHourEquipWorkDuration(JSONObject param);

    /**
     * 按天统计设备计数
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getDayEquipCount(JSONObject param);

    /**
     * 按天统计设备列表计数
     * @param param 参数 equipCodes 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> queryDayEquipCount(JSONObject param);

    /**
     * 按天统计设备品番计数
     * @param param 参数 equipCode 设备编码,pCode 品番编码，startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getDayEquipPfCount(JSONObject param);


    /**
     * 按天统计设备有效工作时长
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getDayEquipWorkDuration(JSONObject param);

    /**
     * 按月统计设备计数
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getMonthEquipCount(JSONObject param);

    /**
     * 按月统计设备列表计数
     * @param param 参数 equipCodes 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> queryMonthEquipCount(JSONObject param);

    /**
     * 按月统计设备品番计数
     * @param param 参数 equipCode 设备编码,pCode 品番编码，startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getMonthEquipPfCount(JSONObject param);

    /**
     * 按月统计设备有效工作时长
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getMonthEquipWorkDuration(JSONObject param);

    /**
     * 按年统计设备计数
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getYearEquipCount(JSONObject param);

    /**
     * 按年统计设备列表计数
     * @param param 参数 equipCodes 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> queryYearEquipCount(JSONObject param);

    /**
     * 按年统计设备品番计数
     * @param param 参数 equipCode 设备编码,pCode 品番编码，startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getYearEquipPfCount(JSONObject param);

    /**
     * 按年统计设备有效工作时长
     * @param param 参数 equipCode 设备编码,startTime 开始时间，endTime 结束时间
     * @return 返回统计信息
     */
    ResultInfo<?> getYearEquipWorkDuration(JSONObject param);


}
